home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 12 / BBS in a box XII-2.iso / Files II / Prog / N-P / OOP for C.sit / OIC.ƒ / memory.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-12-08  |  784 b   |  61 lines  |  [TEXT/KAHL]

  1. /*
  2.  *            Copyright © John Wainwright 1988
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include "memoryMgr.h"
  7.  
  8. char *
  9. salloc(n)
  10.     int    n;
  11. {
  12.     register Handle p;
  13.  
  14.     p = NewHandle((long)n);
  15.     HLock(p);
  16.     if (MemErr == 0)
  17.         return *p;
  18.     fprintf(stderr, "Ran out of memory.\n");
  19. }
  20.  
  21. char *
  22. scalloc(n)
  23.     register int    n;
  24. {
  25.     register Handle p;
  26.     register char     *q;
  27.  
  28.     p = NewHandle((long)n);
  29.     if (MemErr == 0)
  30.     {
  31.         HLock(p);
  32.         for (q = *p; n--;)
  33.             *q++ = 0;
  34.         return *p;
  35.     }
  36.     fprintf(stderr, "Ran out of memory.\n");
  37. }
  38.  
  39. char *
  40. srealloc(p, n)
  41.     char    *p;
  42.     int        n;
  43. {
  44.     register long     i;
  45.     register char    *q, *qq;
  46.     register Handle    ph;
  47.     
  48.     q = qq = salloc((long)n);
  49.     ph = RecoverHandle(p);
  50.     for (i = GetHandleSize(ph); i--; )
  51.         *qq++ = *p++;
  52.     DisposHandle(ph);
  53.     return    q;
  54. }
  55.  
  56. int
  57. free(p)
  58.     char *p;
  59. {
  60.     DisposHandle(RecoverHandle(p));
  61. }